home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Musique / Quod Libet / quodlibet-3.3.0-installer.exe / bin / quodlibet / ext / events / squeezebox_sync.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2014-12-31  |  4KB  |  87 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.7)
  3.  
  4. from gi.repository import Gtk
  5. import os
  6. from quodlibet import qltk, app
  7. from quodlibet.ext._shared.squeezebox.base import SqueezeboxPluginMixin
  8. from quodlibet.util.dprint import print_d
  9. from quodlibet.plugins.events import EventPlugin
  10. if os.name == 'nt':
  11.     from quodlibet.plugins import PluginNotSupportedError
  12.     raise PluginNotSupportedError
  13.  
  14. class SqueezeboxSyncPlugin(EventPlugin, SqueezeboxPluginMixin):
  15.     PLUGIN_ID = 'Squeezebox Output'
  16.     PLUGIN_NAME = _('Squeezebox Sync')
  17.     PLUGIN_DESC = _('Make Logitech Squeezebox mirror Quod Libet output, provided both read from an identical library')
  18.     PLUGIN_ICON = Gtk.STOCK_MEDIA_PLAY
  19.     PLUGIN_VERSION = '0.4'
  20.     server = None
  21.     active = False
  22.     _debug = False
  23.     
  24.     def __init__(self):
  25.         super(EventPlugin, self).__init__()
  26.         super(SqueezeboxPluginMixin, self).__init__()
  27.  
  28.     
  29.     def post_reconnect(cls):
  30.         cls.server.stop()
  31.         SqueezeboxPluginMixin.post_reconnect()
  32.         player = app.player
  33.         cls.plugin_on_song_started(player.info)
  34.         cls.plugin_on_seek(player.info, player.get_position())
  35.  
  36.     post_reconnect = classmethod(post_reconnect)
  37.     
  38.     def enabled(self):
  39.         print_d('Debug is set to %s' % self._debug)
  40.         self.active = True
  41.         self.init_server()
  42.         self.server.pause()
  43.         if not self.server.is_connected:
  44.             qltk.ErrorMessage(None, _('Error finding Squeezebox server'), _('Error finding %s. Please check settings') % self.server.config).run()
  45.  
  46.     
  47.     def disabled(self):
  48.         if self.server:
  49.             self.server.stop()
  50.         self.active = False
  51.  
  52.     
  53.     def plugin_on_song_started(cls, song):
  54.         cls.server._debug = cls._debug = cls.config_get_bool('debug', False)
  55.         if cls._debug:
  56.             print_d('Paused' if app.player.paused else 'Not paused')
  57.         if song and cls.server and cls.server.is_connected:
  58.             path = cls.get_sb_path(song)
  59.             print_d('Requesting to play %s...' % path)
  60.             if app.player.paused:
  61.                 cls.server.change_song(path)
  62.             else:
  63.                 cls.server.playlist_play(path)
  64.  
  65.     plugin_on_song_started = classmethod(plugin_on_song_started)
  66.     
  67.     def plugin_on_paused(cls):
  68.         if cls.server:
  69.             cls.server.pause()
  70.  
  71.     plugin_on_paused = classmethod(plugin_on_paused)
  72.     
  73.     def plugin_on_unpaused(cls):
  74.         if cls.server:
  75.             cls.server.unpause()
  76.  
  77.     plugin_on_unpaused = classmethod(plugin_on_unpaused)
  78.     
  79.     def plugin_on_seek(cls, song, msec):
  80.         if app.player.paused and cls.server:
  81.             cls.server.seek_to(msec)
  82.             cls.server.play()
  83.         
  84.  
  85.     plugin_on_seek = classmethod(plugin_on_seek)
  86.  
  87.